/*
 * @Author: yuanchenxi 836909158@qq.com
 * @Date: 2024-07-24 16:57:31
 * @LastEditors: 武兴创 superjava@vip.qq.com
 * @LastEditTime: 2024-08-28 17:39:09
 * @FilePath: \SGFEM\DataStructure\FEM\Property\include\PBUSHData.h
 */
#pragma once

#include "DataStructure/Common/DataStructureExport.h"
#include "DataStructure/Common/DataStructureNamespace.h"
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/Real.h"
#include "DataStructure/Input/Property/PropertyBase.h"

SG_DATASTRUCTURE_FEM_NAMESPACE_OPEN
/// @brief 广义弹簧-阻尼单元属性定义
///
struct PBUSHData : public PropertyBase
{
    SG::DataStructure::Common::Real m_K[6]     = { 0.0 };  ///< 刚度系数
    SG::DataStructure::Common::Real m_B[6]     = { 0.0 };  ///< 速度有关阻尼系数
    SG::DataStructure::Common::Real m_GE[6]    = { 0.0 };  ///< 结构阻尼常数
    SG::DataStructure::Common::Real m_SA       = 1.0;      ///< 应力-应变系数，默认值1.0
    SG::DataStructure::Common::Real m_ST       = 1.0;      ///< 应力-应变系数，默认值1.0
    SG::DataStructure::Common::Real m_EA       = 1.0;      ///< 应力-应变系数，默认值1.0
    SG::DataStructure::Common::Real m_ET       = 1.0;      ///< 应力-应变系数，默认值1.0
    SG::DataStructure::Common::Real m_M        = 0.0;      ///< 集中质量
    SG::DataStructure::Common::Real m_alpha    = 0.0;      ///< 热膨胀系数，参考温度和参考长度，默认值为0.0
    SG::DataStructure::Common::Real m_tref     = 0.0;
    SG::DataStructure::Common::Real m_coinl    = 0.0;
    SG::DataStructure::Common::Id   m_domainId = 0;
};

/// @brief 判断单元数据是否相等
DECLSPEC bool operator== (const PBUSHData& a, const PBUSHData& b);

SG_DATASTRUCTURE_FEM_NAMESPACE_CLOSE